package pms.controller;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

/**
 * Controller, der die geaenderten Daten oder ein neu angelegtes Objekt
 * von Feiertag speichert  
 * Falls Fehler auftreten, wird die view 'Fehler.jsp' angezeigt.
 */

public class SaveFeiertag extends AlleFeiertage {
	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception {
		httpServletRequest.setCharacterEncoding("UTF-8");
		
		SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy"); 
		Date feiertag;
		boolean ok = false;			
		try {
			int id = Integer.parseInt(httpServletRequest.getParameter("id"));
			String feiertagsname = httpServletRequest.getParameter("feiertagsname");
			String feiertagsdate = httpServletRequest.getParameter("feiertagsdatum");
			ok = getFeiertagDao().pruefeDatum(feiertagsdate);
			if (ok) {
				if (id == 0) {
					feiertag = df.parse(feiertagsdate);
					getFeiertagDao().create(feiertagsname, feiertag);
				} else {
					feiertag = df.parse(feiertagsdate);
					getFeiertagDao().modify(id, feiertagsname, feiertag);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			ModelAndView mv = new ModelAndView();
			mv.addObject("title", "Speichere Feiertag");
			mv.addObject("message", "Der Feiertag konnte nicht angelegt bzw. geändert werden." +
					" Bitte Eingaben neu...");
			mv.setViewName("Fehler"); 
			return mv;
		}
		return super.handleRequestInternal(httpServletRequest, httpServletResponse);
	}
}
